مقدمه در بسیاری از برنامههای وب ، اتصال به خدمات مختلف شخص ثالث با استفاده از API طبیعی است. هنگامیکه از این APIها استفاده میکنید ، میتوانید به دادههایی مانند اطلاعات آب و هوا ، امتیازات ورزشی ، لیست فیلمها ، توییتها ، نتایج موتور جستجو و تصاویر دسترسی پیدا کنید. همچنین میتوانید از APIها برای اضافه کردن عملکرد به برنامه خود استفاده کنید. نمونههایی از این موارد پرداختها، برنامه زمانبندی ، ایمیلها ، ترجمهها ، نقشهها و انتقال فایلها است. اگر قرار بود هرکدام از این موارد را به تنهایی ایجاد کنید ، زمان بسیار زیادی میبرد ، اما با وجود APIها ، تنها چند دقیقه طول میکشد تا به یکی متصل شوید و به ویژگیها و دادههای آن دسترسی پیدا کنید. در این مقاله ، ما در مورد کتابخانه درخواستها در پایتون آموزش میبینیم، که به شما امکان میدهد درخواستهای HTTP را در پایتون ارسال کنید . و از آنجا که استفاده از API به معنی ارسال درخواست HTTP و دریافت پاسخ است ، درخواستها به شما امکان میدهد از APIها در پایتون استفاده کنید. ما استفاده از ترجمه زبان API را در اینجا نشان خواهیم داد تا بتوانید نمونهای از نحوه عملکرد آن را ببینید. مرور اجمالی بر درخواستهای HTTP درخواستهای HTTP نحوه عملکرد وب هستند. هر بار که به یک صفحه وب میروید ، مرورگر شما چندین درخواست به سرور مجازی صفحه وب ارائه میکند. سپس سرور مجازی با تمام دادههای لازم برای ارائه صفحه پاسخ میدهد ، و مرورگر شما در واقع صفحه را ارائه میدهد تا بتوانید آن را مشاهده کنید. روند کلی این است: یک مشتری (مانند مرورگر یا اسکریپت پایتون با استفاده از درخواست) برخی از دادهها را به URL ارسال میکند ، و سپس سرور مجازی واقع در URL اطلاعات را میخواند ، تصمیم میگیرد که با آن چه کار کند و پاسخی را به مشتری برگرداند. سرانجام ، مشتری میتواند تصمیم بگیرد که با دادههای موجود در پاسخ چه کاری انجام دهد. بخشی از دادههایی که مشتری در یک درخواست ارسال میکند ، روش درخواست است. برخی از روشهای درخواست متداول عبارتند از: GET ، POST و PUT. درخواستهای GET معمولاً فقط برای خواندن دادهها بدون ایجاد تغییر در چیزی است ، در حالی که درخواستهای POST و PUT معمولاً برای تغییر دادهها روی سرور مجازی است. به عنوان مثال ، Stripe API به شما امکان میدهد تا از درخواستهای POST برای ایجاد شارژ جدید استفاده کنید تا کاربر بتواند چیزی را از برنامه شما خریداری کند. توجه: این مقاله درخواستهای GET را پوشش میدهد ، زیرا ما هیچ گونه دادهای را در سرور مجازی اصلاح نمیکنیم. هنگام ارسال درخواست از یک اسکریپت پایتون یا داخل یک برنامه وب ، شما ، به عنوان توسعه دهنده ، تصمیم میگیرید که در هر درخواست چه چیزی ارسال میشود و با پاسخ چه کاری انجام دهید. بیایید با ارسال یک درخواست به Scotch.io و سپس با استفاده از یک API ترجمه زبان ، این موضوع را کشف کنیم. درخواستهای پایتون را نصب کنید قبل از اینکه بتوانیم کاری انجام دهیم ، باید کتابخانه را نصب کنیم. بنابراین بیایید پیش برویم و درخواستها را با استفاده از pip نصب کنیم. در صورتی که قبلاً یک محیط مجازی نداشته اید ، بهتر است ابتدا آن را ایجاد کنید. $ pip install requests اولین درخواست ما برای شروع ، اجازه دهید از درخواستهایی برای درخواست سایت Scotch.io استفاده کنیم. فایلی بنام script.py ایجاد کنید و کد زیر را به آن اضافه کنید. در این مقاله ، ما کد زیادی برای کار کردن نداریم ، بنابراین وقتی چیزی تغییر کرد ، میتوانید به جای اضافه کردن خطوط جدید ، کد موجود را به روز کنید. script.py import requests res = requests.get('https://scotch.io') print(res) بنابراین تمام کار این کد ارسال یک درخواست GET به Scotch.io است. این همان نوع درخواستی است که مرورگر شما برای مشاهده این صفحه ارسال میکند ، اما تنها تفاوت این است که درخواستها نمیتوانند HTML را ارائه دهند ، بنابراین در عوض شما فقط HTML خام و سایر اطلاعات پاسخ را دریافت خواهید کرد. ما در اینجا از تابع .get () استفاده میکنیم ، اما درخواستها به شما امکان میدهد از سایر عملکردها مانند .post () و .put () برای ارسال آن درخواستها نیز استفاده کنید. میتوانید با اجرای فایل script.py آن را اجرا کنید. $ python script.py و آنچه در عوض دریافت میکنید این است: کدهای وضعیت اولین کاری که میتوانیم انجام دهیم بررسی کد وضعیت است. کدهای HTTP از 1XX تا 5XX متغیر است. کدهای وضعیت مشترک که احتمالاً دیده اید 200 ، 404 و 500 هستند. در اینجا یک مرور اجمالی از آنچه که کد وضعیت دارد به شرح زیر است: ⦁ 1XX - اطلاعات ⦁ 2XX - موفقیت ⦁ 3XX - تغییر مسیر ⦁ 4XX - خطای مشتری (شما خطایی انجام دادید) ⦁ 5XX - خطای سرور مجازی (آنها خطایی ایجاد کردند) به طور کلی ، آنچه که شما هنگام انجام درخواستهای خود به دنبال آن هستید ، کد وضعیت در رده 200 تاییها است. درخواستها تشخیص میدهند که کدهای وضعیت 4XX و 5XX خطا هستند ، بنابراین اگر این کدهای وضعیت برگردانده شوند ، موضوع پاسخ از درخواست به False ارزیابی میشود. با بررسی پاسخ برای واقعیت میتوانید تست کنید که آیا یک درخواست با موفقیت پاسخ داده است. مثلا: script.py if res: print('Response OK') else: print('Response Failed') پیام "پاسخ موفق نبود" فقط در صورت بازگشت کد وضعیت 400 یا 500 ظاهر میشود. سعی کنید URL را به چیز بی معنی تغییر دهید تا عدم موفقیت پاسخ را با 404 ببینید. با افزودن موارد زیر میتوانید مستقیماً به کد وضعیت نگاهی بیندازید: script.py print(res.status_code) با این کار کد وضعیت به طور مستقیم به شما نشان داده میشود تا بتوانید شماره را خودتان بررسی کنید. هدرها موارد دیگری که میتوانید از پاسخ دریافت کنید هدرها هستند. میتوانید با استفاده از فرهنگ نامه هدرها در موضوع پاسخ ، به آنها نگاهی بیندازید. script.py print(res.headers) هدرها به همراه درخواست ارسال میشوند و در پاسخ بازگردانده میشوند. هدرها به این دلیل استفاده میشوند تا هم مشتری و هم سرور مجازی بدانند چگونه دادههایی را که در پاسخ / پاسخ ارسال میشوند ، تفسیر کنند. هدرهای مختلفی را میبینیم که برگردانده میشوند. در بسیاری از مواقع نیازی به استفاده مستقیم از اطلاعات هدر ندارید ، اما در صورت نیاز وجود دارند. نوع محتوا معمولاً چیزی است که ممکن است به آن احتیاج داشته باشید زیرا فرمت دادهها ، به عنوان مثال HTML ، JSON ، PDF ، متن ، و غیره را نشان میدهد. اما نوع محتوا به طور معمول توسط درخواستها تعیین میشود تا بتوانید به دادههایی که بازگردانده میشوند دسترسی پیدا کنید. متن پاسخ و در آخر اینکه ، اگر به res.text نگاهی بیندازیم (این برای دادههای متنی کار میکند ، مانند یک صفحه HTML مانند چیزی که در حال مشاهده هستید) ، میتوانیم تمام HTML مورد نیاز برای ساخت صفحه اصلی Scotch را مشاهده کنیم. ارائه نخواهد شد ، اما میبینیم که متعلق به Scotch است. اگر آن را در یک فایل ذخیره کرده اید و آن را باز کنید ، چیزی را مشاهده میکنید که شبیه به سایت Scotch میباشد. در یک وضعیت واقعی ، درخواستهای چندگانه برای یک صفحه وب واحد برای بارگیری مواردی مانند تصاویر ، اسکریپتها و شیت استایل وجود دارد ، بنابراین اگر فقط HTML را در یک فایل ذخیره کنید ، چیزی شبیه به آنچه در صفحه Scotch.io مرورگرتان به نظر میرسد نخواهد بود زیرا فقط یک درخواست واحد برای بدست آوردن دادههای HTML انجام شده است. script.py print(res.text) استفاده از API ترجمه اکنون بیایید به سراغ یک چیز جالب تر برویم. ما از API ترجمه Yandex برای اجرای درخواست ترجمه متن به زبان دیگر استفاده خواهیم کرد. برای استفاده از API ، ابتدا باید ثبت نام کنید. پس از ورود ، به Translate API بروید و یک کلید API ایجاد کنید. پس از داشتن کلید API ، آن را به صورت ثابت به فایل خود اضافه کنید. در اینجا لینکی وجود دارد که میتوانید تمام آن کارها را انجام دهید: https://tech.yandex.com/translate/ script.py API_KEY = 'your yandex api key' دلیل اینکه به یک کلید API احتیاج داریم این است که Yandex بتواند هر بار که بخواهیم از API آنها استفاده کنیم بتواند ما را تأیید کند. کلید API نوعی تأیید اعتبار ساده است ، زیرا هنگام ارسال ، به انتهای URL درخواست اضافه میشود. برای دانستن اینکه کدام URL را برای استفاده از API باید ارسال کنیم ، میتوانیم به مستندات Yandex مراجعه کنیم. اگر به آنجا بنگریم ، تمام اطلاعات مورد نیاز برای استفاده از Translate API آنها برای ترجمه متن را خواهیم دید. وقتی URL را با امپرسند (&) ، علامت سؤال (؟) و با علائم مساوی (=) میبینیم ، میتوانید مطمئن باشید که URL برای درخواستهای GET است. این نمادها پارامترهایی را نشان میدهد که همراه با URL هستند. به طور معمول موارد موجود در براکتهای مربع ([]) اختیاری خواهد بود. در این حالت ، قالب ، گزینهها و پاسخ به تماس اختیاری هستند ، در حالی که کلید ، متن و زبان برای درخواست لازم میباشند. بنابراین بیایید کدی را برای ارسال به آن URL اضافه کنیم. میتوانید اولین درخواستی را که ایجاد کردیم با این جایگزین کنید: script.py url = 'https://translate.yandex.net/api/v1.5/tr.json/translate' res = requests.get(url) دو روش وجود دارد که میتوانیم پارامترها را اضافه کنیم. میتوانیم مستقیماً آن را به انتهای URL اضافه کنیم ، یا میتوانیم از درخواستهایی بخواهیم این کار را برای ما انجام دهند. برای انجام دومی، میتوانیم یک دیکشنری برای پارامترهای خود ایجاد کنیم. سه مورد مورد نیاز ما کلید ، متن و زبان هستند. بیایید فرهنگ نامه را با استفاده از کلید API ، 'Hello' برای متن ، و "en-es" به عنوان زبان ایجاد کنیم ، به این معنی که میخواهیم از انگلیسی به اسپانیایی ترجمه کنیم. اگر نیاز به دانستن کدهای زبانی دیگر دارید ، میتوانید در این لینک جستجو کنید. شما به دنبال ستون 639-1 هستید. ما یک فرهنگ لغت پارامتری را با استفاده از تابع disc () و عبور از کلیدها و مقادیر مورد نظر در فرهنگ لغت خود ایجاد میکنیم. script.py params = dict(key=API_KEY, text='Hello', lang='en-es') حالا دیکشنری پارامترها را برمیداریم و آن را به تابع .get () منتقل میکنیم. script.py res = requests.get(url, params=params) وقتی از این طریق از پارامترها عبور کردیم ، درخواستها پیش میروند و پارامترها را به آدرس URL برای ما اضافه میکنند. اکنون بیایید عبارت چاپی را برای متن پاسخ اضافه کنیم و ببینیم چه چیزی در پاسخ باز میگردد. script.py print(res.text) سه چیز را میبینیم. کد وضعیت را میبینیم که دقیقاً همان کد وضعیت خود پاسخ است ، زبانی را که مشخص کردیم میبینیم و متن ترجمه شده را در داخل لیست مشاهده میکنیم. بنابراین باید متن Hola را برای متن ترجمه شده ببینید. دوباره به عنوان کد زبان en-fr را امتحان کنید و اکنون باید در پاسخ 'Bonjour' را مشاهده کنید. script.py params = dict(key=API_KEY, text='Hello', lang='en-fr') بیایید نگاهی به عناوین برای این پاسخ خاص بیندازیم. script.py print(res.headers) بدیهی است که هدرها باید متفاوت باشند زیرا ما با یک سرور مجازی دیگر ارتباط برقرار میکنیم ، اما در این حالت نوع محتوا به جای text/html ، application/json است. این بدان معنی است که دادهها را میتوان به صورت JSON تفسیر کرد. هنگامیکه application/json نوع محتوای پاسخ است ، میتوانیم با استفاده از درخواستها، پاسخها را به یک فرهنگ لغت تبدیل و به گونهای لیست کنیم که بتوانیم راحت تر به داده دسترسی پیدا کنیم. برای تجزیه و تحلیل دادهها به عنوان JSON ، از روش .json () در موضوع پاسخ استفاده میکنیم. اگر آن را چاپ کنید ، خواهید دید که دادهها یکسان به نظر میرسند ، اما قالب کمیمتفاوت است. script.py json = res.json() print(json) دلیل متفاوت بودن آن به این دلیل است که دیگر متن سادهای که از res.text دریافت میکردید، نیست. این بار نسخه چاپی یک فرهنگ لغت است. بهتر است بگوییم که میخواهیم به متن دسترسی پیدا کنیم. از آنجا که اکنون یک فرهنگ لغت است ، میتوانیم از کلید متن استفاده کنیم. script.py print(json['text']) و اکنون فقط دادههای مربوط به آن یک کلید را میبینیم. در این حالت ما به دنبال لیست یک مورد هستیم ، بنابراین اگر میخواستیم آن متن را مستقیماً در لیست قرار دهیم ، میتوانیم از طریق فهرست به آن دسترسی پیدا کنیم. script.py print(json['text'][0]) و اکنون تنها چیزی که میبینیم کلمه ترجمه شده است. بنابراین مطمئناً اگر موارد را در پارامترهای خود تغییر دهیم ، نتایج متفاوتی خواهیم گرفت. بیایید متن را برای ترجمه از Hello به Goodbye تغییر دهیم ، زبان مقصد را به اسپانیایی برگردانیم و درخواست را دوباره ارسال کنیم. script.py params = dict(key=API_KEY, text='Goodbye', lang='en-es') سعی کنید متن طولانی تر را به زبانهای مختلف ترجمه کنید و ببینید چه پاسخی به API میدهد. موارد خطای Translate API در آخر ، به یک مورد خطا نگاه خواهیم کرد. همه چیز همیشه کار نمیکند ، بنابراین باید بدانیم چه زمانی این اتفاق میافتد. با حذف یک کاراکتر ، کلید API خود را تغییر دهید. وقتی این کار را کردید دیگر کلید API شما معتبر نخواهد بود. سپس یک درخواست را ارسال کنید. اگر به کد وضعیت نگاهی بیندازید ، این چیزی است که بدست میآورید: script.py print(res.status_code) بنابراین وقتی از API استفاده میکنید ، بهتر است بررسی کنید که آیا موارد موفقیت آمیز هستند یا خیر ، بنابراین میتوانید با توجه به نیاز برنامه خود ، موارد خطا را برطرف کنید. نتیجه این چیزی است که ما آموخته ایم: • درخواستهای HTTP چگونه کار میکند • کدهای وضعیت مختلف ممکن در یک پاسخ • نحوه ارسال درخواست و دریافت پاسخ با استفاده از کتابخانه درخواستها در پایتون • نحوه استفاده از API translate برای ترجمه متن • چگونگی تبدیل پاسخهای محتوای application/JSON به فرهنگ لغت اگر میخواهید کارهای بیشتری انجام دهید ، این لیست را بررسی کنید تا APIهای مختلف موجود را ببینید و سعی کنید از آنها با درخواستهای پایتون استفاده کنید. از این لینکها زیر میتوانید آمورشهای بیشتری برای لینوکس پیدا کنید : نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04 نحوه نصب و استفاده از TimescaleDB در CentOS 7 نحوه تایید صحت رمز عبور با Apache در اوبونتو 18.04 (شروع سریع) نحوه راه اندازی Eclipse Theia Cloud IDE Platform در Debian 10 نحوه نصب و استفاده ازRadamsa برای فوز کردن برنامهها (تکنیک تست خودکار نرم افزار) و خدمات شبکه روی Ubuntu 18.04 نحوه نصب Docker Compose در Debian 10 چگونه میتوان با کتابخانه (library) درخواستها در پایتون شروع به کار کرد نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04 نحوه تنظیم پلتفرم Eclipse Theia Cloud IDE در CentOS 7 بسته بندی برنامه Laravel 6 برای توسعه با Docker Compose در اوبونتو 18.04 نحوه بهینه سازی درخواستهای MySQL با ذخیره سازی ProxySQL در اوبونتو 16.04 نحوه استفاده از Ansible برای نصب و راه اندازی وردپرس با LAMP در اوبونتو 18.04 چگونه میتوان پلتفرم کد سرور Cloud IDE را در اوبونتو 18.04 تنظیم کرد (شروع سریع) چگونه میتوان از رولهای ansible برای انتزاع محیط زیرساختی خود استفاده کرد نحوه پیکربندی یک خوشه Galera با MySQL در سرورهای اوبونتو 18.04 نحوه تهیه نسخه پشتیبان و بازیابی یک خوشه Kubernetes در vpsgol با استفاده از Velero نحوه نصب و استفاده از PostgreSQL در CentOS 7 چگونه میتوان پلتفرم Eclipse Theia Cloud IDE را روی اوبونتو 18.4 تنظیم کرد نحوه استقرار و مدیریت DNS با استفاده از DNSControl در Debian 10 چگونه میتوان پلتفرم Cloud IDE کد سرور را روی CentOS 7 تنظیم کرد کلمات کلیدی خرید سرور خرید vps – خرید سرور مجازی – خرید سرور – سرور هلند – فروش vps – سرور مجازی آمریکا – خریدvps – سرور مجازی هلند – فروش سرور مجازی – سرور آمریکا – vps – سرور مجازی انگلیس – سرور مجازی آلمان – سرور مجازی کانادا – خرید vps آمریکا – خرید وی پی اس – سرور – خرید سرور مجازی هلند – vps خرید – سرور مجازی فرانسه – سرور مجازی هلند – خرید vps آمریکا – خرید سرور مجازی هلند – خرید وی پی اس – خرید vps هلند – خرید vps فرانسه
نحوه اجرای صفحه گذاری در MySQL با PHP روی اوبونتو 18.04 بازدید : 697
يکشنبه 3 اسفند 1398 زمان : 18:17